<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">

<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>mxStencil</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/prettify.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad();prettyPrint();"><script language=JavaScript><!--
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>

<!--  Generated by Natural Docs, version 1.51 -->
<!--  http://www.naturaldocs.org  -->

<!-- saved from url=(0026)http://www.naturaldocs.org -->




<div id=Content><div class="CClass"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="mxStencil"></a>mxStencil</h1><div class=CBody><p>Implements a generic shape which is based on a XML node as a description.</p><h4 class=CHeading>shape</h4><h4 class=CHeading>The outer element is <b>shape</b>, that has attributes</h4><ul><li>&rdquo;name&rdquo;, string, required.&nbsp; The stencil name that uniquely identifies the shape.</li><li>&rdquo;w&rdquo; and &ldquo;h&rdquo; are optional decimal view bounds.&nbsp; This defines your co-ordinate system for the graphics operations in the shape.&nbsp; The default is 100,100.</li><li>&rdquo;aspect&rdquo;, optional string.&nbsp; Either &ldquo;variable&rdquo;, the default, or &ldquo;fixed&rdquo;.&nbsp; Fixed means always render the shape with the aspect ratio defined by the ratio w/h.&nbsp; Variable causes the ratio to match that of the geometry of the current vertex.</li><li>&rdquo;strokewidth&rdquo;, optional string.&nbsp; Either an integer or the string &ldquo;inherit&rdquo;.&nbsp; &ldquo;inherit&rdquo; indicates that the strokeWidth of the cell is only changed on scaling, not on resizing.&nbsp; Default is &ldquo;1&rdquo;.&nbsp; If numeric values are used, the strokeWidth of the cell is changed on both scaling and resizing and the value defines the multiple that is applied to the width.</li></ul><h4 class=CHeading>connections</h4><p>If you want to define specific fixed connection points on the shape use the <b>connections</b> element.&nbsp; Each <b>constraint</b> element within connections defines a fixed connection point on the shape.&nbsp; Constraints have attributes:</p><ul><li>&rdquo;perimeter&rdquo;, required.&nbsp; 1 or 0.&nbsp; 0 sets the connection point where specified by x,y.&nbsp; 1 Causes the position of the connection point to be extrapolated from the center of the shape, through x,y to the point of intersection with the perimeter of the shape.</li><li>&rdquo;x&rdquo; and &ldquo;y&rdquo; are the position of the fixed point relative to the bounds of the shape.&nbsp; They can be automatically adjusted if perimeter=1.&nbsp; So, (0,0) is top left, (0.5,0.5) the center, (1,0.5) the center of the right hand edge of the bounds, etc.&nbsp; Values may be less than 0 or greater than 1 to be positioned outside of the shape.</li><li>&rdquo;name&rdquo;, optional string.&nbsp; A unique identifier for the port on the shape.</li></ul><h4 class=CHeading>background and foreground</h4><p>The path of the graphics drawing is split into two elements, <b>foreground</b> and <b>background</b>.&nbsp; The split is to define which part any shadow applied to the shape is derived from (the background).&nbsp; This, generally, means the background is the line tracing of the outside of the shape, but not always.</p><p>Any stroke, fill or fillstroke of a background must be the first element of the foreground element, they must not be used within <b>background</b>.&nbsp; If the background is empty, this is not required.</p><p>Because the background cannot have any fill or stroke, it can contain only one <b>path</b>, <b>rect</b>, <b>roundrect</b> or <b>ellipse</b> element (or none).&nbsp; It can also not include <b>image</b>, <b>text</b> or <b>include-shape</b>.</p><p>Note that the state, styling and drawing in mxGraph stencils is very close in design to that of HTML 5 canvas.&nbsp; Tutorials on this subject, if you&rsquo;re not familiar with the topic, will give a good high-level introduction to the concepts used.</p><h4 class=CHeading>State</h4><p>Rendering within the foreground and background elements has the concept of state.&nbsp; There are two types of operations other than state save/load, styling and drawing.&nbsp; The styling operations change the current state, so you can save the current state with &lt;save/&gt; and pull the last saved state from the state stack using &lt;restore/&gt;.</p><h4 class=CHeading>Styling</h4><p>The elements that change colors within the current state all take a hash prefixed hex color code (&ldquo;#FFEA80&rdquo;).</p><ul><li><b>strokecolor</b>, this sets the color that drawing paths will be rendered in when a stroke or fillstroke command is issued.</li><li><b>fillcolor</b>, this sets the color that the inside of closed paths will be rendered in when a fill or fillstroke command is issued.</li><li><b>fontcolor</b>, this sets the color that fonts are rendered in when text is drawn.</li></ul><p><b>alpha</b> defines the degree of transparency used between 1.0 for fully opaque and 0.0 for fully transparent.</p><p><b>fillalpha</b> defines the degree of fill transparency used between 1.0 for fully opaque and 0.0 for fully transparent.</p><p><b>strokealpha</b> defines the degree of stroke transparency used between 1.0 for fully opaque and 0.0 for fully transparent.</p><p><b>strokewidth</b> defines the integer thickness of drawing elements rendered by stroking.&nbsp; Use fixed=&rdquo;1&rdquo; to apply the value as-is, without scaling.</p><p><b>dashed</b> is &ldquo;1&rdquo; for dashing enabled and &ldquo;0&rdquo; for disabled.</p><p>When <b>dashed</b> is enabled the current dash pattern, defined by <b>dashpattern</b>, is used on strokes. dashpattern is a sequence of space separated &ldquo;on, off&rdquo; lengths that define what distance to paint the stroke for, then what distance to paint nothing for, repeat...&nbsp; The default is &ldquo;3 3&rdquo;.&nbsp; You could define a more complex pattern with &ldquo;5 3 2 6&rdquo;, for example.&nbsp; Generally, it makes sense to have an even number of elements in the dashpattern, but that&rsquo;s not required.</p><p><b>linejoin</b>, <b>linecap</b> and <b>miterlimit</b> are best explained by the Mozilla page on Canvas styling (about halfway down).&nbsp; The values are all the same except we use &ldquo;flat&rdquo; for linecap, instead of Canvas&rsquo; &ldquo;butt&rdquo;.</p><p>For font styling there are.</p><ul><li><b>fontsize</b>, an integer,</li><li><b>fontstyle</b>, an ORed bit pattern of bold (1), italic (2) and underline (4), i.e bold underline is &ldquo;5&rdquo;.</li><li><b>fontfamily</b>, is a string defining the typeface to be used.</li></ul><h4 class=CHeading>Drawing</h4><p>Most drawing is contained within a <b>path</b> element.&nbsp; Again, the graphic primitives are very similar to that of HTML 5 canvas.</p><ul><li><b>move</b> to attributes required decimals (x,y).</li><li><b>line</b> to attributes required decimals (x,y).</li><li><b>quad</b> to required decimals (x2,y2) via control point required decimals (x1,y1).</li><li><b>curve</b> to required decimals (x3,y3), via control points required decimals (x1,y1) and (x2,y2).</li><li><b>arc</b>, this doesn&rsquo;t follow the HTML Canvas signatures, instead it&rsquo;s a copy of the SVG arc command.&nbsp; The SVG specification documentation gives the best description of its behaviors.&nbsp; The attributes are named identically, they are decimals and all required.</li><li><b>close</b> ends the current subpath and causes an automatic straight line to be drawn from the current point to the initial point of the current subpath.</li></ul><h4 class=CHeading>Complex drawing</h4><p>In addition to the graphics primitive operations there are non-primitive operations.&nbsp; These provide an easy method to draw some basic shapes.</p><ul><li><b>rect</b>, attributes &ldquo;x&rdquo;, &ldquo;y&rdquo;, &ldquo;w&rdquo;, &ldquo;h&rdquo;, all required decimals</li><li><b>roundrect</b>, attributes &ldquo;x&rdquo;, &ldquo;y&rdquo;, &ldquo;w&rdquo;, &ldquo;h&rdquo;, all required decimals.&nbsp; Also &ldquo;arcsize&rdquo; an optional decimal attribute defining how large, the corner curves are.</li><li><b>ellipse</b>, attributes &ldquo;x&rdquo;, &ldquo;y&rdquo;, &ldquo;w&rdquo;, &ldquo;h&rdquo;, all required decimals.</li></ul><p>Note that these 3 shapes and all paths must be followed by either a fill, stroke, or fillstroke.</p><h4 class=CHeading>Text</h4><p><b>text</b> elements have the following attributes.</p><ul><li>&rdquo;str&rdquo;, the text string to display, required.</li><li>&rdquo;x&rdquo; and &ldquo;y&rdquo;, the decimal location (x,y) of the text element, required.</li><li>&rdquo;align&rdquo;, the horizontal alignment of the text element, either &ldquo;left&rdquo;, &ldquo;center&rdquo; or &ldquo;right&rdquo;.&nbsp; Optional, default is &ldquo;left&rdquo;.</li><li>&rdquo;valign&rdquo;, the vertical alignment of the text element, either &ldquo;top&rdquo;, &ldquo;middle&rdquo; or &ldquo;bottom&rdquo;.&nbsp; Optional, default is &ldquo;top&rdquo;.</li><li>&rdquo;localized&rdquo;, 0 or 1, if 1 then the &ldquo;str&rdquo; actually contains a key to use to fetch the value out of mxResources.&nbsp; Optional, default is <a href="#mxStencil.defaultLocalized" class=LVariable id=link33 onMouseOver="ShowTip(event, 'tt5', 'link33')" onMouseOut="HideTip('tt5')">mxStencil.defaultLocalized</a>.</li><li>&rdquo;vertical&rdquo;, 0 or 1, if 1 the label is rendered vertically (rotated by 90 degrees).&nbsp; Optional, default is 0.</li><li>&rdquo;rotation&rdquo;, angle in degrees (0 to 360).&nbsp; The angle to rotate the text by.&nbsp; Optional, default is 0.</li><li>&rdquo;align-shape&rdquo;, 0 or 1, if 0 ignore the rotation of the shape when setting the text rotation.&nbsp; Optional, default is 1.</li></ul><p>If <a href="#mxStencil.allowEval" class=LFunction id=link34 onMouseOver="ShowTip(event, 'tt22', 'link34')" onMouseOut="HideTip('tt22')">allowEval</a> is true, then the text content of the this element can define a function which is invoked with the shape as the only argument and returns the value for the text element (ignored if the str attribute is not null).</p><h4 class=CHeading>Images</h4><p><b>image</b> elements can either be external URLs, or data URIs, where supported (not in IE 7-).&nbsp; Attributes are:</p><ul><li>&rdquo;src&rdquo;, required string.&nbsp; Either a data URI or URL.</li><li>&rdquo;x&rdquo;, &ldquo;y&rdquo;, required decimals.&nbsp; The (x,y) position of the image.</li><li>&rdquo;w&rdquo;, &ldquo;h&rdquo;, required decimals.&nbsp; The width and height of the image.</li><li>&rdquo;flipH&rdquo; and &ldquo;flipV&rdquo;, optional 0 or 1.&nbsp; Whether to flip the image along the horizontal/vertical axis.&nbsp; Default is 0 for both.</li></ul><p>If <a href="#mxStencil.allowEval" class=LFunction id=link35 onMouseOver="ShowTip(event, 'tt22', 'link35')" onMouseOut="HideTip('tt22')">allowEval</a> is true, then the text content of the this element can define a function which is invoked with the shape as the only argument and returns the value for the image source (ignored if the src attribute is not null).</p><h4 class=CHeading>Sub-shapes</h4><p><b>include-shape</b> allow stencils to be rendered within the current stencil by referencing the sub-stencil by name.&nbsp; Attributes are:</p><ul><li>&rdquo;name&rdquo;, required string.&nbsp; The unique shape name of the stencil.</li><li>&rdquo;x&rdquo;, &ldquo;y&rdquo;, &ldquo;w&rdquo;, &ldquo;h&rdquo;, required decimals.&nbsp; The (x,y) position of the sub-shape and its width and height.</li></ul><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#mxStencil" >mxStencil</a></td><td class=SDescription>Implements a generic shape which is based on a XML node as a description.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxStencil.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxStencil.mxStencil" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">mxStencil</a></td><td class=SDescription>Constructs a new generic shape by setting <a href="#mxStencil.desc" class=LVariable id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">desc</a> to the given XML node and invoking <a href="#mxStencil.parseDescription" class=LFunction id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">parseDescription</a> and <a href="#mxStencil.parseConstraints" class=LFunction id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">parseConstraints</a>.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxStencil.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxStencil.defaultLocalized" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">defaultLocalized</a></td><td class=SDescription>Static global variable that specifies the default value for the localized attribute of the text element. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxStencil.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxStencil.allowEval" >allowEval</a></td><td class=SDescription>Static global switch that specifies if the use of eval is allowed for evaluating text content and images. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxStencil.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxStencil.desc" id=link6 onMouseOver="ShowTip(event, 'tt2', 'link6')" onMouseOut="HideTip('tt2')">desc</a></td><td class=SDescription>Holds the XML node with the stencil description.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxStencil.constraints" id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">constraints</a></td><td class=SDescription>Holds an array of <a href="../view/mxConnectionConstraint-js.html#mxConnectionConstraint" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt7', 'link8')" onMouseOut="HideTip('tt7')">mxConnectionConstraints</a> as defined in the shape.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxStencil.aspect" id=link9 onMouseOver="ShowTip(event, 'tt8', 'link9')" onMouseOut="HideTip('tt8')">aspect</a></td><td class=SDescription>Holds the aspect of the shape. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxStencil.w0" id=link10 onMouseOver="ShowTip(event, 'tt9', 'link10')" onMouseOut="HideTip('tt9')">w0</a></td><td class=SDescription>Holds the width of the shape. </td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxStencil.h0" id=link11 onMouseOver="ShowTip(event, 'tt10', 'link11')" onMouseOut="HideTip('tt10')">h0</a></td><td class=SDescription>Holds the height of the shape. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxStencil.bgNodes" >bgNodes</a></td><td class=SDescription>Holds the XML node with the stencil description.</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#mxStencil.fgNodes" >fgNodes</a></td><td class=SDescription>Holds the XML node with the stencil description.</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#mxStencil.strokewidth" id=link12 onMouseOver="ShowTip(event, 'tt11', 'link12')" onMouseOut="HideTip('tt11')">strokewidth</a></td><td class=SDescription>Holds the strokewidth direction from the description.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#mxStencil.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxStencil.parseDescription" id=link13 onMouseOver="ShowTip(event, 'tt3', 'link13')" onMouseOut="HideTip('tt3')">parseDescription</a></td><td class=SDescription>Reads <a href="#mxStencil.w0" class=LVariable id=link14 onMouseOver="ShowTip(event, 'tt9', 'link14')" onMouseOut="HideTip('tt9')">w0</a>, <a href="#mxStencil.h0" class=LVariable id=link15 onMouseOver="ShowTip(event, 'tt10', 'link15')" onMouseOut="HideTip('tt10')">h0</a>, <a href="#mxStencil.aspect" class=LVariable id=link16 onMouseOver="ShowTip(event, 'tt8', 'link16')" onMouseOut="HideTip('tt8')">aspect</a>, <a href="#mxStencil.bgNodes" class=LVariable id=link17 onMouseOver="ShowTip(event, 'tt12', 'link17')" onMouseOut="HideTip('tt12')">bgNodes</a> and <a href="#mxStencil.fgNodes" class=LVariable id=link18 onMouseOver="ShowTip(event, 'tt13', 'link18')" onMouseOut="HideTip('tt13')">fgNodes</a> from <a href="#mxStencil.desc" class=LVariable id=link19 onMouseOver="ShowTip(event, 'tt2', 'link19')" onMouseOut="HideTip('tt2')">desc</a>.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxStencil.parseConstraints" id=link20 onMouseOver="ShowTip(event, 'tt4', 'link20')" onMouseOut="HideTip('tt4')">parseConstraints</a></td><td class=SDescription>Reads the constraints from <a href="#mxStencil.desc" class=LVariable id=link21 onMouseOver="ShowTip(event, 'tt2', 'link21')" onMouseOut="HideTip('tt2')">desc</a> into <a href="#mxStencil.constraints" class=LVariable id=link22 onMouseOver="ShowTip(event, 'tt6', 'link22')" onMouseOut="HideTip('tt6')">constraints</a> using <a href="#mxStencil.parseConstraint" class=LFunction id=link23 onMouseOver="ShowTip(event, 'tt14', 'link23')" onMouseOut="HideTip('tt14')">parseConstraint</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxStencil.parseConstraint" id=link24 onMouseOver="ShowTip(event, 'tt14', 'link24')" onMouseOut="HideTip('tt14')">parseConstraint</a></td><td class=SDescription>Parses the given XML node and returns its <a href="../view/mxConnectionConstraint-js.html#mxConnectionConstraint" class=LClass id=link25 onMouseOver="ShowTip(event, 'tt7', 'link25')" onMouseOut="HideTip('tt7')">mxConnectionConstraint</a>.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxStencil.evaluateTextAttribute" id=link26 onMouseOver="ShowTip(event, 'tt15', 'link26')" onMouseOut="HideTip('tt15')">evaluateTextAttribute</a></td><td class=SDescription>Gets the given attribute as a text. </td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxStencil.evaluateAttribute" id=link27 onMouseOver="ShowTip(event, 'tt16', 'link27')" onMouseOut="HideTip('tt16')">evaluateAttribute</a></td><td class=SDescription>Gets the attribute for the given name from the given node. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxStencil.drawShape" id=link28 onMouseOver="ShowTip(event, 'tt17', 'link28')" onMouseOut="HideTip('tt17')">drawShape</a></td><td class=SDescription>Draws this stencil inside the given bounds.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxStencil.drawChildren" id=link29 onMouseOver="ShowTip(event, 'tt18', 'link29')" onMouseOut="HideTip('tt18')">drawChildren</a></td><td class=SDescription>Draws this stencil inside the given bounds.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mxStencil.computeAspect" id=link30 onMouseOver="ShowTip(event, 'tt19', 'link30')" onMouseOut="HideTip('tt19')">computeAspect</a></td><td class=SDescription>Returns a rectangle that contains the offset in x and y and the horizontal and vertical scale in width and height used to draw this shape inside the given <a href="../util/mxRectangle-js.html#mxRectangle" class=LClass id=link31 onMouseOver="ShowTip(event, 'tt20', 'link31')" onMouseOut="HideTip('tt20')">mxRectangle</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mxStencil.drawNode" id=link32 onMouseOver="ShowTip(event, 'tt21', 'link32')" onMouseOut="HideTip('tt21')">drawNode</a></td><td class=SDescription>Draws this stencil inside the given bounds.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxStencil.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStencil.mxStencil"></a>mxStencil</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>function mxStencil(</td><td class="PParameter  prettyprint " nowrap>desc</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Constructs a new generic shape by setting <a href="#mxStencil.desc" class=LVariable id=link36 onMouseOver="ShowTip(event, 'tt2', 'link36')" onMouseOut="HideTip('tt2')">desc</a> to the given XML node and invoking <a href="#mxStencil.parseDescription" class=LFunction id=link37 onMouseOver="ShowTip(event, 'tt3', 'link37')" onMouseOut="HideTip('tt3')">parseDescription</a> and <a href="#mxStencil.parseConstraints" class=LFunction id=link38 onMouseOver="ShowTip(event, 'tt4', 'link38')" onMouseOut="HideTip('tt4')">parseConstraints</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>desc</td><td class=CDLDescription>XML node that contains the stencil description.</td></tr></table></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxStencil.Variables"></a>Variables</h3></div></div>

<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxStencil.defaultLocalized"></a>defaultLocalized</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">mxStencil.defaultLocalized</td></tr></table></blockquote><p>Static global variable that specifies the default value for the localized attribute of the text element.&nbsp; Default is false.</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxStencil.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStencil.allowEval"></a>allowEval</h3><div class=CBody><p>Static global switch that specifies if the use of eval is allowed for evaluating text content and images.&nbsp; Default is false.&nbsp; Set this to true if stencils can not contain user input.</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxStencil.Variables"></a>Variables</h3></div></div>

<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxStencil.desc"></a>desc</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">mxStencil.prototype.desc</td></tr></table></blockquote><p>Holds the XML node with the stencil description.</p></div></div></div>

<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxStencil.constraints"></a>constraints</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">mxStencil.prototype.constraints</td></tr></table></blockquote><p>Holds an array of <a href="../view/mxConnectionConstraint-js.html#mxConnectionConstraint" class=LClass id=link39 onMouseOver="ShowTip(event, 'tt7', 'link39')" onMouseOut="HideTip('tt7')">mxConnectionConstraints</a> as defined in the shape.</p></div></div></div>

<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxStencil.aspect"></a>aspect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">mxStencil.prototype.aspect</td></tr></table></blockquote><p>Holds the aspect of the shape.&nbsp; Default is &lsquo;auto&rsquo;.</p></div></div></div>

<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxStencil.w0"></a>w0</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">mxStencil.prototype.w0</td></tr></table></blockquote><p>Holds the width of the shape.&nbsp; Default is 100.</p></div></div></div>

<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxStencil.h0"></a>h0</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">mxStencil.prototype.h0</td></tr></table></blockquote><p>Holds the height of the shape.&nbsp; Default is 100.</p></div></div></div>

<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxStencil.bgNodes"></a>bgNodes</h3><div class=CBody><p>Holds the XML node with the stencil description.</p></div></div></div>

<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxStencil.fgNodes"></a>fgNodes</h3><div class=CBody><p>Holds the XML node with the stencil description.</p></div></div></div>

<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="mxStencil.strokewidth"></a>strokewidth</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">mxStencil.prototype.strokewidth</td></tr></table></blockquote><p>Holds the strokewidth direction from the description.</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="mxStencil.Functions"></a>Functions</h3></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStencil.parseDescription"></a>parseDescription</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">mxStencil.prototype.parseDescription = function()</td></tr></table></blockquote><p>Reads <a href="#mxStencil.w0" class=LVariable id=link40 onMouseOver="ShowTip(event, 'tt9', 'link40')" onMouseOut="HideTip('tt9')">w0</a>, <a href="#mxStencil.h0" class=LVariable id=link41 onMouseOver="ShowTip(event, 'tt10', 'link41')" onMouseOut="HideTip('tt10')">h0</a>, <a href="#mxStencil.aspect" class=LVariable id=link42 onMouseOver="ShowTip(event, 'tt8', 'link42')" onMouseOut="HideTip('tt8')">aspect</a>, <a href="#mxStencil.bgNodes" class=LVariable id=link43 onMouseOver="ShowTip(event, 'tt12', 'link43')" onMouseOut="HideTip('tt12')">bgNodes</a> and <a href="#mxStencil.fgNodes" class=LVariable id=link44 onMouseOver="ShowTip(event, 'tt13', 'link44')" onMouseOut="HideTip('tt13')">fgNodes</a> from <a href="#mxStencil.desc" class=LVariable id=link45 onMouseOver="ShowTip(event, 'tt2', 'link45')" onMouseOut="HideTip('tt2')">desc</a>.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStencil.parseConstraints"></a>parseConstraints</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">mxStencil.prototype.parseConstraints = function()</td></tr></table></blockquote><p>Reads the constraints from <a href="#mxStencil.desc" class=LVariable id=link46 onMouseOver="ShowTip(event, 'tt2', 'link46')" onMouseOut="HideTip('tt2')">desc</a> into <a href="#mxStencil.constraints" class=LVariable id=link47 onMouseOver="ShowTip(event, 'tt6', 'link47')" onMouseOut="HideTip('tt6')">constraints</a> using <a href="#mxStencil.parseConstraint" class=LFunction id=link48 onMouseOver="ShowTip(event, 'tt14', 'link48')" onMouseOut="HideTip('tt14')">parseConstraint</a>.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStencil.parseConstraint"></a>parseConstraint</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mxStencil.prototype.parseConstraint = function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Parses the given XML node and returns its <a href="../view/mxConnectionConstraint-js.html#mxConnectionConstraint" class=LClass id=link49 onMouseOver="ShowTip(event, 'tt7', 'link49')" onMouseOut="HideTip('tt7')">mxConnectionConstraint</a>.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStencil.evaluateTextAttribute"></a>evaluateTextAttribute</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mxStencil.prototype.evaluateTextAttribute = function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>attribute,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>shape</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Gets the given attribute as a text.&nbsp; The return value from <a href="#mxStencil.evaluateAttribute" class=LFunction id=link50 onMouseOver="ShowTip(event, 'tt16', 'link50')" onMouseOut="HideTip('tt16')">evaluateAttribute</a> is used as a key to <a href="../util/mxResources-js.html#mxResources.get" class=LFunction id=link51 onMouseOver="ShowTip(event, 'tt23', 'link51')" onMouseOut="HideTip('tt23')">mxResources.get</a> if the localized attribute in the text node is 1 or if <a href="#mxStencil.defaultLocalized" class=LVariable id=link52 onMouseOver="ShowTip(event, 'tt5', 'link52')" onMouseOut="HideTip('tt5')">defaultLocalized</a> is true.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStencil.evaluateAttribute"></a>evaluateAttribute</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mxStencil.prototype.evaluateAttribute = function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>attribute,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>shape</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Gets the attribute for the given name from the given node.&nbsp; If the attribute does not exist then the text content of the node is evaluated and if it is a function it is invoked with &lt;shape&gt; as the only argument and the return value is used as the attribute value to be returned.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStencil.drawShape"></a>drawShape</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mxStencil.prototype.drawShape = function(</td><td class="PParameter  prettyprint " nowrap>canvas,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>shape,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>w,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>h</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws this stencil inside the given bounds.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStencil.drawChildren"></a>drawChildren</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mxStencil.prototype.drawChildren = function(</td><td class="PParameter  prettyprint " nowrap>canvas,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>shape,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>w,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>h,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>aspect,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>disableShadow,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>paint</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws this stencil inside the given bounds.</p></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStencil.computeAspect"></a>computeAspect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mxStencil.prototype.computeAspect = function(</td><td class="PParameter  prettyprint " nowrap>shape,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>w,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>h,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>direction</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns a rectangle that contains the offset in x and y and the horizontal and vertical scale in width and height used to draw this shape inside the given <a href="../util/mxRectangle-js.html#mxRectangle" class=LClass id=link53 onMouseOver="ShowTip(event, 'tt20', 'link53')" onMouseOut="HideTip('tt20')">mxRectangle</a>.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>shape</td><td class=CDLDescription><a href="mxShape-js.html#mxShape" class=LClass id=link54 onMouseOver="ShowTip(event, 'tt24', 'link54')" onMouseOut="HideTip('tt24')">mxShape</a> to be drawn.</td></tr><tr><td class=CDLEntry>bounds</td><td class=CDLDescription><a href="../util/mxRectangle-js.html#mxRectangle" class=LClass id=link55 onMouseOver="ShowTip(event, 'tt20', 'link55')" onMouseOut="HideTip('tt20')">mxRectangle</a> that should contain the stencil.</td></tr><tr><td class=CDLEntry>direction</td><td class=CDLDescription>Optional direction of the shape to be darwn.</td></tr></table></div></div></div>

<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mxStencil.drawNode"></a>drawNode</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mxStencil.prototype.drawNode = function(</td><td class="PParameter  prettyprint " nowrap>canvas,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>shape,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>aspect,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>disableShadow,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>paint</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws this stencil inside the given bounds.</p></div></div></div>

</div><!--Content-->


<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->


<div id=Menu><div class=MEntry><div class=MFile><a href="../index-txt.html">API Specification</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Editor</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../editor/mxDefaultKeyHandler-js.html">mxDefaultKeyHandler</a></div></div><div class=MEntry><div class=MFile><a href="../editor/mxDefaultPopupMenu-js.html">mxDefaultPopupMenu</a></div></div><div class=MEntry><div class=MFile><a href="../editor/mxDefaultToolbar-js.html">mxDefaultToolbar</a></div></div><div class=MEntry><div class=MFile><a href="../editor/mxEditor-js.html">mxEditor</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Handler</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../handler/mxCellHighlight-js.html">mxCellHighlight</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxCellMarker-js.html">mxCellMarker</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxCellTracker-js.html">mxCellTracker</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxConnectionHandler-js.html">mxConnectionHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxConstraintHandler-js.html">mxConstraintHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxEdgeHandler-js.html">mxEdgeHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxEdgeSegmentHandler-js.html">mxEdgeSegmentHandler.js</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxElbowEdgeHandler-js.html">mxElbowEdgeHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxGraphHandler-js.html">mxGraphHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxHandle-js.html">mxHandle</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxKeyHandler-js.html">mxKeyHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxPanningHandler-js.html">mxPanningHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxPopupMenuHandler-js.html">mxPopupMenuHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxRubberband-js.html">mxRubberband</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxSelectionCellsHandler-js.html">mxSelectionCellsHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxTooltipHandler-js.html">mxTooltipHandler</a></div></div><div class=MEntry><div class=MFile><a href="../handler/mxVertexHandler-js.html">mxVertexHandler</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Io</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="../io/mxCellCodec-js.html">mxCellCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxChildChangeCodec-js.html">mxChildChangeCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodec-js.html">mxCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxCodecRegistry-js.html">mxCodecRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxDefaultKeyHandlerCodec-js.html">mxDefaultKeyHandlerCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxDefaultPopupMenuCodec-js.html">mxDefaultPopupMenuCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxDefaultToolbarCodec-js.html">mxDefaultToolbarCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxEditorCodec-js.html">mxEditorCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxGenericChangeCodec-js.html">mxGenericChangeCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxGraphCodec-js.html">mxGraphCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxGraphViewCodec-js.html">mxGraphViewCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxModelCodec-js.html">mxModelCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxObjectCodec-js.html">mxObjectCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxRootChangeCodec-js.html">mxRootChangeCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxStylesheetCodec-js.html">mxStylesheetCodec</a></div></div><div class=MEntry><div class=MFile><a href="../io/mxTerminalChangeCodec-js.html">mxTerminalChangeCodec</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent7')">Layout</a><div class=MGroupContent id=MGroupContent7><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent6')">Hierarchical</a><div class=MGroupContent id=MGroupContent6><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Model</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../layout/hierarchical/model/mxGraphAbstractHierarchyCell-js.html">mxGraphAbstractHierarchyCell</a></div></div><div class=MEntry><div class=MFile><a href="../layout/hierarchical/model/mxGraphHierarchyEdge-js.html">mxGraphHierarchyEdge</a></div></div><div class=MEntry><div class=MFile><a href="../layout/hierarchical/model/mxGraphHierarchyModel-js.html">mxGraphHierarchyModel</a></div></div><div class=MEntry><div class=MFile><a href="../layout/hierarchical/model/mxGraphHierarchyNode-js.html">mxGraphHierarchyNode</a></div></div><div class=MEntry><div class=MFile><a href="../layout/hierarchical/model/mxSwimlaneModel-js.html">mxSwimlaneModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../layout/hierarchical/mxHierarchicalLayout-js.html">mxHierarchicalLayout</a></div></div><div class=MEntry><div class=MFile><a href="../layout/hierarchical/mxSwimlaneLayout-js.html">mxSwimlaneLayout</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Stage</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MFile><a href="../layout/hierarchical/stage/mxCoordinateAssignment-js.html">mxCoordinateAssignment</a></div></div><div class=MEntry><div class=MFile><a href="../layout/hierarchical/stage/mxHierarchicalLayoutStage-js.html">mxHierarchicalLayoutStage</a></div></div><div class=MEntry><div class=MFile><a href="../layout/hierarchical/stage/mxMedianHybridCrossingReduction-js.html">mxMedianHybridCrossingReduction</a></div></div><div class=MEntry><div class=MFile><a href="../layout/hierarchical/stage/mxMinimumCycleRemover-js.html">mxMinimumCycleRemover</a></div></div><div class=MEntry><div class=MFile><a href="../layout/hierarchical/stage/mxSwimlaneOrdering-js.html">mxSwimlaneOrdering</a></div></div></div></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../layout/mxCircleLayout-js.html">mxCircleLayout</a></div></div><div class=MEntry><div class=MFile><a href="../layout/mxCompactTreeLayout-js.html">mxCompactTreeLayout</a></div></div><div class=MEntry><div class=MFile><a href="../layout/mxCompositeLayout-js.html">mxCompositeLayout</a></div></div><div class=MEntry><div class=MFile><a href="../layout/mxEdgeLabelLayout-js.html">mxEdgeLabelLayout</a></div></div><div class=MEntry><div class=MFile><a href="../layout/mxFastOrganicLayout-js.html">mxFastOrganicLayout</a></div></div><div class=MEntry><div class=MFile><a href="../layout/mxGraphLayout-js.html">mxGraphLayout</a></div></div><div class=MEntry><div class=MFile><a href="../layout/mxParallelEdgeLayout-js.html">mxParallelEdgeLayout</a></div></div><div class=MEntry><div class=MFile><a href="../layout/mxPartitionLayout-js.html">mxPartitionLayout</a></div></div><div class=MEntry><div class=MFile><a href="../layout/mxRadialTreeLayout-js.html">mxRadialTreeLayout</a></div></div><div class=MEntry><div class=MFile><a href="../layout/mxStackLayout-js.html">mxStackLayout</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent8')">Model</a><div class=MGroupContent id=MGroupContent8><div class=MEntry><div class=MFile><a href="../model/mxCell-js.html">mxCell</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxCellPath-js.html">mxCellPath</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGeometry-js.html">mxGeometry</a></div></div><div class=MEntry><div class=MFile><a href="../model/mxGraphModel-js.html">mxGraphModel</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../mxClient-js.html">mxClient</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent9')">Shape</a><div class=MGroupContent id=MGroupContent9><div class=MEntry><div class=MFile><a href="mxActor-js.html">mxActor</a></div></div><div class=MEntry><div class=MFile><a href="mxArrow-js.html">mxArrow</a></div></div><div class=MEntry><div class=MFile><a href="mxArrowConnector-js.html">mxArrowConnector</a></div></div><div class=MEntry><div class=MFile><a href="mxCloud-js.html">mxCloud</a></div></div><div class=MEntry><div class=MFile><a href="mxConnector-js.html">mxConnector</a></div></div><div class=MEntry><div class=MFile><a href="mxCylinder-js.html">mxCylinder</a></div></div><div class=MEntry><div class=MFile><a href="mxDoubleEllipse-js.html">mxDoubleEllipse</a></div></div><div class=MEntry><div class=MFile><a href="mxEllipse-js.html">mxEllipse</a></div></div><div class=MEntry><div class=MFile><a href="mxHexagon-js.html">mxHexagon</a></div></div><div class=MEntry><div class=MFile><a href="mxImageShape-js.html">mxImageShape</a></div></div><div class=MEntry><div class=MFile><a href="mxLabel-js.html">mxLabel</a></div></div><div class=MEntry><div class=MFile><a href="mxLine-js.html">mxLine</a></div></div><div class=MEntry><div class=MFile><a href="mxMarker-js.html">mxMarker</a></div></div><div class=MEntry><div class=MFile><a href="mxPolyline-js.html">mxPolyline</a></div></div><div class=MEntry><div class=MFile><a href="mxRectangleShape-js.html">mxRectangleShape</a></div></div><div class=MEntry><div class=MFile><a href="mxRhombus-js.html">mxRhombus</a></div></div><div class=MEntry><div class=MFile><a href="mxShape-js.html">mxShape</a></div></div><div class=MEntry><div class=MFile id=MSelected>mxStencil</div></div><div class=MEntry><div class=MFile><a href="mxStencilRegistry-js.html">mxStencilRegistry</a></div></div><div class=MEntry><div class=MFile><a href="mxSwimlane-js.html">mxSwimlane</a></div></div><div class=MEntry><div class=MFile><a href="mxText-js.html">mxText</a></div></div><div class=MEntry><div class=MFile><a href="mxTriangle-js.html">mxTriangle</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent10')">Util</a><div class=MGroupContent id=MGroupContent10><div class=MEntry><div class=MFile><a href="../util/mxAbstractCanvas2D-js.html">mxAbstractCanvas2D</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxAnimation-js.html">mxAnimation</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxAutoSaveManager-js.html">mxAutoSaveManager</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxClipboard-js.html">mxClipboard</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxConstants-js.html">mxConstants</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxDictionary-js.html">mxDictionary</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxDivResizer-js.html">mxDivResizer</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxDragSource-js.html">mxDragSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEffects-js.html">mxEffects</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEvent-js.html">mxEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventObject-js.html">mxEventObject</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxEventSource-js.html">mxEventSource</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxForm-js.html">mxForm</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxGuide-js.html">mxGuide</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImage-js.html">mxImage</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageBundle-js.html">mxImageBundle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxImageExport-js.html">mxImageExport</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxLog-js.html">mxLog</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxMorphing-js.html">mxMorphing</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxMouseEvent-js.html">mxMouseEvent</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxObjectIdentity-js.html">mxObjectIdentity</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPanningManager-js.html">mxPanningManager</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPoint-js.html">mxPoint</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxPopupMenu-js.html">mxPopupMenu</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxRectangle-js.html">mxRectangle</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxResources-js.html">mxResources</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxSvgCanvas2D-js.html">mxSvgCanvas2D</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxToolbar-js.html">mxToolbar</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUndoableEdit-js.html">mxUndoableEdit</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUndoManager-js.html">mxUndoManager</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUrlConverter-js.html">mxUrlConverter</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxUtils-js.html">mxUtils</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxVmlCanvas2D-js.html">mxVmlCanvas2D</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxWindow-js.html">mxWindow</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxXmlCanvas2D-js.html">mxXmlCanvas2D</a></div></div><div class=MEntry><div class=MFile><a href="../util/mxXmlRequest-js.html">mxXmlRequest</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent11')">View</a><div class=MGroupContent id=MGroupContent11><div class=MEntry><div class=MFile><a href="../view/mxCellEditor-js.html">mxCellEditor</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxCellOverlay-js.html">mxCellOverlay</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxCellRenderer-js.html">mxCellRenderer</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxCellState-js.html">mxCellState</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxCellStatePreview-js.html">mxCellStatePreview</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxConnectionConstraint-js.html">mxConnectionConstraint</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxEdgeStyle-js.html">mxEdgeStyle</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraph-js.html">mxGraph</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphSelectionModel-js.html">mxGraphSelectionModel</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxGraphView-js.html">mxGraphView</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxLayoutManager-js.html">mxLayoutManager</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxMultiplicity-js.html">mxMultiplicity</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxOutline-js.html">mxOutline</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPerimeter-js.html">mxPerimeter</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxPrintPreview-js.html">mxPrintPreview</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStyleRegistry-js.html">mxStyleRegistry</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxStylesheet-js.html">mxStylesheet</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxSwimlaneManager-js.html">mxSwimlaneManager</a></div></div><div class=MEntry><div class=MFile><a href="../view/mxTemporaryCellStates-js.html">mxTemporaryCellStates</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent12')">Index</a><div class=MGroupContent id=MGroupContent12><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Cookies.html">Cookies</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Events.html">Events</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Cookies">Cookies</option><option value="Events">Events</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
HideAllBut([9], 13);// --></script></div><!--Menu-->



<!--START_ND_TOOLTIPS-->
<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>function mxStencil(</td><td class="PParameter  prettyprint " nowrap>desc</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Constructs a new generic shape by setting desc to the given XML node and invoking parseDescription and parseConstraints.</div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">mxStencil.prototype.desc</td></tr></table></blockquote>Holds the XML node with the stencil description.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">mxStencil.prototype.parseDescription = function()</td></tr></table></blockquote>Reads w0, h0, aspect, bgNodes and fgNodes from desc.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">mxStencil.prototype.parseConstraints = function()</td></tr></table></blockquote>Reads the constraints from desc into constraints using parseConstraint.</div></div><div class=CToolTip id="tt5"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">mxStencil.defaultLocalized</td></tr></table></blockquote>Static global variable that specifies the default value for the localized attribute of the text element. </div></div><div class=CToolTip id="tt6"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">mxStencil.prototype.constraints</td></tr></table></blockquote>Holds an array of mxConnectionConstraints as defined in the shape.</div></div><div class=CToolTip id="tt7"><div class=CClass>Defines an object that contains the constraints about how to connect one side of an edge to its terminal.</div></div><div class=CToolTip id="tt8"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">mxStencil.prototype.aspect</td></tr></table></blockquote>Holds the aspect of the shape. </div></div><div class=CToolTip id="tt9"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">mxStencil.prototype.w0</td></tr></table></blockquote>Holds the width of the shape. </div></div><div class=CToolTip id="tt10"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">mxStencil.prototype.h0</td></tr></table></blockquote>Holds the height of the shape. </div></div><div class=CToolTip id="tt11"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td class="prettyprint">mxStencil.prototype.strokewidth</td></tr></table></blockquote>Holds the strokewidth direction from the description.</div></div><div class=CToolTip id="tt12"><div class=CVariable>Holds the XML node with the stencil description.</div></div><div class=CToolTip id="tt13"><div class=CVariable>Holds the XML node with the stencil description.</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mxStencil.prototype.parseConstraint = function(</td><td class="PParameter  prettyprint " nowrap>node</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Parses the given XML node and returns its mxConnectionConstraint.</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mxStencil.prototype.evaluateTextAttribute = function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>attribute,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>shape</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Gets the given attribute as a text. </div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mxStencil.prototype.evaluateAttribute = function(</td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>attribute,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>shape</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Gets the attribute for the given name from the given node. </div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mxStencil.prototype.drawShape = function(</td><td class="PParameter  prettyprint " nowrap>canvas,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>shape,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>w,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>h</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Draws this stencil inside the given bounds.</div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mxStencil.prototype.drawChildren = function(</td><td class="PParameter  prettyprint " nowrap>canvas,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>shape,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>w,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>h,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>aspect,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>disableShadow,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>paint</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Draws this stencil inside the given bounds.</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mxStencil.prototype.computeAspect = function(</td><td class="PParameter  prettyprint " nowrap>shape,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>x,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>y,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>w,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>h,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>direction</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns a rectangle that contains the offset in x and y and the horizontal and vertical scale in width and height used to draw this shape inside the given mxRectangle.</div></div><div class=CToolTip id="tt20"><div class=CClass>Extends mxPoint to implement a 2-dimensional rectangle with double precision coordinates.</div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>mxStencil.prototype.drawNode = function(</td><td class="PParameter  prettyprint " nowrap>canvas,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>shape,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>node,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>aspect,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>disableShadow,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>paint</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Draws this stencil inside the given bounds.</div></div><div class=CToolTip id="tt22"><div class=CFunction>Static global switch that specifies if the use of eval is allowed for evaluating text content and images. </div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class="Prototype"><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class="PBeforeParameters  prettyprint "nowrap>get: function(</td><td class="PParameter  prettyprint " nowrap>key,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>params,</td></tr><tr><td></td><td class="PParameter  prettyprint " nowrap>defaultValue</td><td class="PAfterParameters  prettyprint "nowrap>)</td></tr></table></td></tr></table></blockquote>Returns the value for the specified resource key.</div></div><div class=CToolTip id="tt24"><div class=CClass>Base class for all shapes. </div></div><!--END_ND_TOOLTIPS-->




<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>


<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>